/*
 * @文件描述:
 * @公司: 山东大学信息学院
 * @作者: 李洪文
 * @Date: 2019-11-07 15:21:01
 * @LastEditors  : 李洪文
 * @LastEditTime : 2019-12-19 10:34:35
 */

import format from 'date-fns/esm/format';
import parse from 'date-fns/esm/parse';

/**
 * 从对象中删除空字段
 * @param obj: Object
 * @return 新的对象
 */
export const removeEmptyFromObj = (obj: object) => {
  const newObj = {};
  for (const key in obj) {
    const item = obj[key];
    if (item === '' || item === null || item === undefined || item.length === 0) continue;
    newObj[key] = item;
  }
  return newObj;
};

/**
 * 清空 store
 * @param storeInstance 现有的 store 实例
 * @param newStoreInstance 新的 store 实例
 */
export const clearStore = (storeInstance: object, newStoreInstance: object) => {
  for (const key in newStoreInstance) {
    storeInstance[key] = newStoreInstance[key];
  }
};

/**
 * 将date对象格式化为 "2019-11-11 00:00:00" 的格式
 * @param date 要格式化的 date对象
 */
export const dateFormat = (date: Date): string => {
  // return format(date, 'yyyy-MM-dd HH:mm:ss'); // 由于 JS Date对象不传时间默认为8点 所以此方式不行
  return `${format(date, 'yyyy-MM-dd')} 00:00:00`;
};

/**
 * 将 "2019-11-11 00:00:00" 格式的字符串 转换为 date对象
 * @param dateStr date字符串
 */
export const dateTimeStrToDate = (dateStr: string): Date => {
  return parse(dateStr, 'yyyy-MM-dd HH:mm:ss', 0);
};
